One data communication protocol for inter-device communication in an electronic apparatus is the IIC (Inter Integrated Circuit) protocol (a serial communication protocol developed by Philips Ltd.). In IIC, a plurality of devices are interconnected via an SCL signal line for an SCL (serial clock) signal and an SDA signal line for an SDA (serial data) signal, each signal line being a bidirectional open collector signal line pulled up to the power source through a resistor. A bus configured from an SCL signal line and an SDA signal line is referred to as an ‘IIC bus’, and a communication protocol using an IIC bus is referred to as an ‘IIC protocol’. The plurality of devices connected to an IIC bus include a master device capable of controlling other devices by controlling the SCL and SDA signals and a slave device controlled by the master device; each device has its own address. Plural master devices and plural slave devices can be connected to a single IIC bus.
In IIC, the master device operates, for example, as follows. When starting communication, the master device checks whether another device is accessing the IIC bus. Absence of such access can be confirmed by detecting that both IIC bus lines, the SCL signal line and the SDA signal line, are in the high state. Next, if no device is accessing the IIC bus, the master device issues an IIC start condition, transmits information specifying the address of the device with which it wishes to communicate and the read or write direction, and upon receiving a response from that slave device, then transmits necessary data to the slave device. The necessary data can be determined on the basis of a protocol established between the two devices. In IIC, at the end of communication, the master device generates a stop condition, thereby placing both the SCL signal line and SDA signal line in the high state.
IIC also permits a scheme in which the master device transmits data to the slave device and the slave device returns a response indicating whether it has correctly received the data to the master device. In this scheme, the master device issues a start condition, transmits information specifying the address of the slave device and the write direction, and then transmits data. Next, the master device issues another start condition and transmits information specifying the slave address and the read direction, and the slave device sends the master device a response indicating whether or not it has correctly received the data. When a communication system conforming to the IIC standard is configured in this way, the master device can definitely confirm that the data have been transmitted to the slave device (see patent reference 1, for example).
In IIC, it sometimes happens that the slave device cannot receive signals normally from the master device for some reason, or that the SCL signal line or SDA signal line becomes stuck in the low state, making communication impossible. In a proposed remedy to these situations, a signal line other than the IIC bus lines is used to reset a slave device that is unable to communicate (see patent reference 2, for example).